
def sys_list_prompt(sys_name:str,amount:int):
    """
    软著框架系统清单提示词构造
    :return:
    """
    prompts = f"""
你是一位资深的软件产品经理和系统架构师，精通各种业务领域的需求分析和功能设计。你的任务是为一个特定的业务系统设计其核心功能模块。

现在，请为以下系统进行设计：
**[{sys_name}]**

请遵循以下所有规则：
1.  设计 **{amount}** 核心功能模块。这些模块将构成系统的左侧主菜单。
2.  每个功能模块必须包含两个属性：`name` (string, 功能的中文名称) 和 `description` (string, 一句话的功能简介，并且有详细的界面操作，比如如增加的操作步骤，删除的操作步骤)。
3.  **严格要求**：你的最终回答必须是一个纯净的、不包含任何前后解释性文字的JSON数组（a list of objects）。你的整个回答内容应该可以直接被`JSON.parse()`方法解析。

返回的JSON格式必须严格如下所示：
[
  {{
    "name": "功能名称一",
    "description": "这里是对功能一的简洁描述和这一功能的详细操作步骤。"
  }},
  {{
    "name": "功能名称二",
    "description": "这里是对功能二的简洁描述和这一功能的详细操作步骤。"
  }}
]
"""
    return prompts

def appconfig_prompt(sys_name:str,feature_list:list[dict[str,str]]):

    prompts = f"""
你是一位顶级的全栈开发工程师和数据架构师，擅长将产品需求转化为具体的、结构化的数据模型和配置。

你的任务是根据一个已确认的系统名称和功能模块列表，生成一个完整的前端应用配置文件（一个JSON对象）。

**输入信息如下：**

1.  **系统名称 (systemName):**
    `{sys_name}`

2.  **功能模块列表 (featureList):**
    ```json
    {feature_list}
    ```

**请遵循以下所有规则，生成最终的配置对象：**

1.  **顶级结构:** 生成一个包含`siteTitle`, `menu`, 和 `data`三个键的JSON对象。

2.  **`siteTitle` (string):**
    *   直接使用上面提供的`systemName`。

3.  **`menu` (array of objects):**
    *   遍历`featureList`中的每一项来生成。
    *   每个对象必须包含`name` (string) 和 `id` (string) 两个键。
    *   `name`直接使用`featureList`中的`name`。
    *   `id`必须是你为该功能设计的、一个简短的、有意义的、全小写的英文单词或拼音缩写（例如："长者档案管理" -> "elders", "首页看板" -> "dashboard"）。`id`必须是唯一的。

4.  **`data` (object):**
    *   这是一个对象，其**键名必须与上面`menu`中生成的`id`一一对应**。这是强制性规则。
    *   对于每一个键（例如`"elders"`），其值都是一个包含`title`, `columns`, 和 `rows`的对象。
    *   **`title` (string):** 基于功能的`name`生成，通常是`name` + "列表" 或 `name` + "管理" (例如："长者档案列表")。
    *   **`columns` (array of objects):**
        *   为每个功能设计 **3到5个** 最核心、最相关的表格列。
        *   每个列对象必须包含`key` (string, 规则同`menu.id`，小写英文) 和 `label` (string, 列的中文标题)。
    *   **`rows` (array of objects):**
        *   为每个功能生成 **3到5条** 逼真的、符合逻辑的模拟数据。
        *   每个行对象代表一条数据记录，**其键名必须与上面`columns`中定义的`key`一一对应**。
        *   每个行对象还必须包含一个唯一的**数字类型**的`id`键，例如`101`, `102`...

5.  **最终输出要求:**
    *   你的最终回答**必须**是一个纯净的、不包含任何前后解释性文字的JSON对象。
    *   你的整个回答内容应该可以直接被`JSON.parse()`方法解析。

**JSON结构模板参考：**
```json
{{
  "siteTitle": "...",
  "menu": [
    {{ "name": "...", "id": "..." }}
  ],
  "data": {{
    "menu_id_1": {{
      "title": "...",
      "columns": [
        {{ "key": "...", "label": "..." }}
      ],
      "rows": [
        {{ "id": 101, "column_key_1": "...", "column_key_2": "..." }}
      ]
    }}
  }}
}}```
"""
    return prompts

def create_application_from(sys_name:str,feature_list:list,tech_stack:str):
    prompts = f"""
背景与角色：
你是一位资深的软件架构师和技术总监，拥有丰富的软件著作权申请经验。你非常熟悉申请表格中每个字段的官方要求和填写规范。
核心任务：
我将为你提供一个软件的三个核心信息：软件全称、软件的主要功能 和 技术栈。你的任务是基于这些核心信息，为我完整地生成一份用于软著申请的详细技术说明，并严格按照我指定的 JSON 格式输出。
处理指令与字段详解：
在生成内容时，请严格遵循以下对每个 JSON 键的解释和要求，这些解释均参照了官方申请表示例：
sys_name (软件全称):
来源: 直接使用我提供的 软件全称。
要求: 无需修改。
dev_environment (开发的硬件环境):
含义: 指开发人员编写、调试代码时所使用的最低计算机硬件配置。
要求: 生成一套合理且通用的开发硬件配置。应包含 CPU、内存(RAM)、硬盘(Hard Disk)三项。配置不宜过高，以体现普适性。
示例: CPU：2.5GHz及以上；内存：8GB及以上；硬盘：100GB及以上可用空间
prod_environment (运行的硬件环境):
含义: 指软件部署后，在服务器或客户端上稳定运行所需的推荐硬件配置。
要求: 此配置必须高于或等于 dev_environment。特别是内存和硬盘要求，应显著更高，以体现生产环境的稳定性要求。
示例: CPU：双核 3.0GHz及以上；内存：16GB及以上；硬盘：500GB及以上可用空间
dev_tools (软件开发环境/开发工具):
含义: 列出开发过程中使用的所有关键软件工具、SDK 和环境。
要求: 根据我提供的 技术栈 进行精确推断。例如，如果技术栈包含 Spring Boot 和 Vue.js，则应推断出 JDK、Maven/Gradle、IntelliJ IDEA/Eclipse、VSCode、Node.js 等。请将它们组合成一个清晰的列表。
示例: JDK 1.8+, IntelliJ IDEA, VSCode, Maven 3.6+, Node.js 16+, MySQL Workbench
running_sys (该软件的运行平台/操作系统):
含义: 软件最终部署和运行所依赖的服务器操作系统。
要求: 提供主流的服务器操作系统选项。通常是 Linux 发行版或 Windows Server。
示例: CentOS 7.6+, Ubuntu Server 20.04+, Windows Server 2016+
software_support_environment (软件运行支撑环境/支持软件):
含义: 软件运行所必需的中间件、容器、数据库、Web服务器等。
要求: 根据我提供的 技术栈 进行详细推断。例如，Spring Boot 项目可能需要 Tomcat (即使是内嵌的)，Vue.js 前端需要 Nginx 来部署，数据库和缓存也应列出。
示例: Web服务器: Nginx 1.20+; 数据库: MySQL 8.0+; 缓存: Redis 6.0+
programming_language (编程语言):
含义: 软件项目所使用的全部编程语言。
要求: 从 技术栈 中准确提取，并且补充缺少的。例如，Spring Boot 对应 Java，Vue.js 对应 JavaScript, HTML, CSS，数据库操作对应 SQL。请将所有语言列出。
示例: Java, JavaScript, HTML, CSS, SQL
number_code (源程序量):
含义: 软件的源代码总行数（Lines of Code）。
要求: 根据 软件的主要功能 的复杂程度，估算一个合理的、不带逗号的整数。通常对于一个中小型系统，这个数字在 50,000 到 200,000 之间。
示例: 85420
purpose (开发目的):
含义: 对软件开发意图的高度概括，说明软件要解决的核心问题或实现的价值。
要求: 从 软件的主要功能 描述中提炼和升华，语言应正式、精炼。
示例: 旨在解决传统企业财务流程中的效率瓶颈，通过数字化手段实现预算的精准管控与智能分析，提升企业整体财务管理水平和决策效率。
field_oriented (面向领域 / 行业):
含义: 软件主要服务的具体行业或业务领域。
要求: 根据 软件全称 和 软件的主要功能 进行判断。
示例: 企业财务管理、信息技术服务、数据分析与决策支持领域
main_functions (软件的主要功能):
来源: 直接使用我提供的 软件的主要功能。
要求: 如果我提供的是列表，请将其整理成一段通顺的、以逗号分隔的描述性文字。
classification (软件的技术特点分类):
含义: 对软件技术架构或应用模式的一个高层分类。
要求: 根据 技术栈 和 主要功能 选择一个最贴切的分类。
常见选项: 云计算软件、大数据应用软件、人工智能软件、移动互联网技术、物联网应用软件、企业应用软件。请选择其一或类似表述。
示例: 云计算与企业应用软件
technical_features (软件的技术特点):
含义: 对软件在技术实现、架构设计、性能等方面的亮点的详细描述。
要求: 将 技术栈 中的技术点串联成一段有逻辑的、专业性的描述。应突出架构优势（如微服务、前后端分离）、数据处理能力、系统特性（如高并发、可扩展性、安全性）等。
示例: 采用业界主流的Java语言及Spring Boot框架构建后端，实现前后端分离的微服务架构，提高了系统的可维护性和扩展性；前端基于Vue.js框架，提供流畅的用户交互体验；通过数据可视化技术，实现多维度报表分析；系统支持跨平台部署，具备高并发处理能力和完善的安全加密机制。
用户输入区：
软件全称: {sys_name}
软件的主要功能: {feature_list}
确定的技术栈技术栈:{tech_stack}
最终输出要求：
绝对禁止输出任何解释、说明、注释或 markdown 标记 (如 ```json)。
必须直接输出一个格式化良好、内容完整的 JSON 对象。
JSON 对象的键名必须与我上面定义的13个键完全一致。
"""
    return prompts

def create_source_code_prompt(sys_name:str,feature_list:list,tech_stack:str):
    prompts = f"""
角色:
你是一位顶级的全栈软件架构师，精通多种技术栈，并且非常熟悉中国软件著作权申请的材料准备规范。你的任务是为我生成一份用于申请的、高质量的源代码文件。
核心任务:
根据我提供的软件核心信息，生成一份连续的、总计约60页（约3000-3500行）的源代码。这份代码将分为逻辑上的两部分，但物理上是连续输出的：
前半部分 (前30页): 体现项目的骨架和基础。应包含项目初始化、核心配置、主要的数据实体、基础服务接口、以及主程序的入口等。
后半部分 (后30页): 体现项目的核心业务逻辑和复杂功能实现。应包含具体的业务控制器、复杂的服务层实现、与数据库交互的详细逻辑、以及前端关键组件的具体实现代码。
我的软件信息:
软件全称: {sys_name}
软件的主要功能: {feature_list}
技术栈: {tech_stack}
严格的输出要求:
纯代码输出: 你的回答必须只包含源代码本身。绝对不能包含任何解释、标题、说明、介绍、总结、语言标识（如 java）或 Markdown 代码块标记 (```)。
连续输出: 前半部分和后半部分的代码必须是连续的，中间不能有任何分隔符、注释或空行来区分它们。
内容真实性:
所有代码都必须与我提供的 软件全称、主要功能 和 技术栈 强相关。
代码中应包含中文注释，以解释关键类、方法或复杂逻辑的作用，这对于申请材料至关重要。
代码必须是完整且可读的，避免使用 // TODO 或无意义的占位符。变量和函数命名应具有业务含义。
结构合理性: 请根据你对所提供技术栈的最佳实践来组织代码结构。例如，一个 Spring Boot + Vue 的项目，应该包含 Controller, Service, Repository/Mapper, Entity 等后端分层结构，以及 Vue components, API services 等前端结构。

    """
    return prompts
def create_backend_foundation_prompt(system_name: str, feature_name: str, description: str, tech_stack: str) -> str:
    """
    生成一个通用的、用于创建“后端基础层”代码的专业Prompt。
    任务：为指定功能生成数据实体/模型、数据访问接口和业务服务接口。
    """
    return f"""
# 角色
你是一位顶级的全栈软件架构师，精通 `{tech_stack}` 技术栈，并且非常熟悉中国软件著作权申请的材料准备规范。

# 核心任务
为软件 **《{system_name}》** 的 **“{feature_name}”** 功能，生成**基础架构层**的源代码。这部分代码是功能的基石，用于软件著作权申请材料的**前半部分**。

# 上下文信息
- **软件全称**: {system_name}
- **功能模块**: {feature_name}
- **功能描述**: {description}
- **目标技术栈**: {tech_stack}

# 核心要求
1.  **代码内容**: 基于所提供的技术栈，连续生成以下代码：
    a. **数据实体/模型**: 根据功能描述，设计并创建核心数据结构。
    b. **数据访问接口 (Repository/DAO/Mapper)**: 创建用于操作上述实体的数据访问接口。
    c. **服务层接口 (Service Interface)**: 定义该功能模块的核心业务方法。

2.  **软著申请规范**:
    a. **详尽中文注释**: 每个类、方法、字段都必须有清晰的中文注释，解释其业务作用。
    b. **业务化命名**: 所有命名需直接反映业务含义，例如根据“{feature_name}”推导出合适的英文类名和变量名。
    c. **代码完整性**: 代码必须是完整且结构合理的，包含必要的包声明和导入。禁止使用占位符。

# 输出格式
- **纯代码输出**: 你的回答必须只包含源代码。
- **绝对禁止**: 任何解释、标题、介绍、总结、语言标识或Markdown代码块。
- **连续输出**: 所有代码部分需连续输出

# 请开始生成代码。
"""
def create_backend_logic_prompt(system_name: str, feature_name: str, description: str, tech_stack: str) -> str:
    """
    生成一个通用的、用于创建“后端逻辑层”代码的专业Prompt。
    任务：为指定功能生成业务服务实现类和API控制器。
    """
    return f"""
# 角色
你是一位顶级的全栈软件架构师，精通 `{tech_stack}` 技术栈，并且非常熟悉中国软件著作权申请的材料准备规范。

# 核心任务
为软件 **《{system_name}》** 的 **“{feature_name}”** 功能，生成**核心业务逻辑层**的源代码。这部分代码体现了软件的功能实现，用于软件著作权申请材料的**后半部分**。

# 上下文信息
- **软件全称**: {system_name}
- **功能模块**: {feature_name}
- **功能描述**: {description}
- **目标技术栈**: {tech_stack}

# 核心要求
1.  **代码内容**: 基于所提供的技术栈，并假设基础层代码已存在，连续生成以下代码：
    a. **服务层实现 (Service Implementation)**: 实现服务接口，包含具体的业务处理逻辑，如数据校验、组合和计算。
    b. **控制器 (Controller/Router)**: 创建API端点，处理HTTP请求，并调用服务层方法。

2.  **软著申请规范**:
    a. **体现业务逻辑**: 代码必须包含能反映业务流程的逻辑判断、数据处理等，不能是简单的数据透传。
    b. **详尽中文注释**: 对关键的业务步骤和复杂逻辑必须有详细的中文注释。
    c. **代码健壮性**: 体现出良好的编程实践，如基本的参数校验或异常处理框架。

# 输出格式
- **纯代码输出**: 你的回答必须只包含源代码。
- **绝对禁止**: 任何解释、标题、介绍、总结、语言标识或Markdown代码块。
- **连续输出**: 所有代码部分需连续输出，中间用注释行

# 请开始生成代码。
"""
def create_frontend_component_prompt(system_name: str, feature_name: str, description: str, tech_stack: str) -> str:
    """
    生成一个通用的、用于创建“前端UI与交互层”代码的专业Prompt。
    任务：为指定功能生成一个功能完整的用户界面组件。
    """
    return f"""
# 角色
你是一位顶级的全栈软件架构师，精通 `{tech_stack}` 技术栈，并且非常熟悉中国软件著作权申请的材料准备规范。

# 核心任务
为软件 **《{system_name}》** 的 **“{feature_name}”** 功能，生成**前端用户界面与交互逻辑**的源代码。这部分代码是人机交互的实现，用于软件著作权申请材料的**后半部分**。

# 上下文信息
- **软件全称**: {system_name}
- **功能模块**: {feature_name}
- **功能描述**: {description}
- **目标技术栈**: {tech_stack}

# 核心要求
1.  **代码内容**: 基于技术栈中的前端框架（如Vue, React等），生成一个功能完整的单文件组件，实现经典的管理界面，包含：
    a. **UI布局**: 搜索区、操作按钮、数据表格、分页和表单对话框。
    b. **交互逻辑**: 包含处理用户操作的函数存根（如搜索、保存、删除）。
    c. **状态管理**: 定义驱动UI所需的响应式状态。

2.  **软著申请规范**:
    a. **详尽中文注释**: 对组件的状态、主要函数和生命周期钩子的作用必须进行详细的中文注释。
    b. **API交互**: 包含调用后端API的函数存根，并用注释清晰说明其用途。
    c. **代码结构清晰**: 模板、脚本、样式分离，易于阅读和理解。

# 输出格式
- **纯代码输出**: 你的回答必须只包含源代码。
- **绝对禁止**: 任何解释、标题、介绍、总结、语言标识或Markdown代码块。

"""